struct ListNode* deleteDuplicates(struct ListNode* head) {
    struct ListNode* newhead=(struct ListNode*)malloc(sizeof(struct ListNode));
    newhead->next=head;
    struct ListNode* temp=newhead;
    int j;
    while(temp->next &&temp->next->next!=NULL)
    {if(temp->next->val==temp->next->next->val)
     {j=temp->next->val;
     while(temp->next && temp->next->val==j)
     {temp->next=temp->next->next;}}
     else temp=temp->next;
    }
    return newhead->next;
}